江离书生

vuePress-theme-reco 史博辉    2024
江离书生 江离书生

Choose mode

  • dark
  • auto
  • light
主页
分类
  • html
  • java
  • 日常生活
  • markdown
  • mysql
  • nvm
  • pnpm
  • 常见问题
  • vue3
标签
时间轴
author-avatar

史博辉

51

文章

9

标签

主页
分类
  • html
  • java
  • 日常生活
  • markdown
  • mysql
  • nvm
  • pnpm
  • 常见问题
  • vue3
标签
时间轴
  • HTML

    • HTML5 简介

      • HTML5 简介
      • HTML 历史与 HTML5
      • HTML 发展历史
      • HTML 4.01 和 XHTML
      • HTML 和 XHTML 的文档类型定义(DTD)
      • 从 XHTML 到 HTML5
      • HTML5 的优势
      • 解决跨浏览器问题
      • 部分代替了原来的 JavaScript
      • 更明确的语义支持
      • 增强了 Web 应用程序的功能
      • HTML5 的基本结构和语法变化
      • HTML5 的基本结构
      • 标签不再区分大小写
      • 元素可以省略结束标签
      • 支持 boolean 值的属性
      • 允许属性值不使用引号
      • 小结
    • HTML5 的常用元素与属性

    • HTML5 表单相关的元素和属性

    • HTML5 的绘图支持

    • HTML5 的多媒体支持

    • 级联样式单与 CSS 选择器

    • 字体与文本相关属性

    • 背景、边框和边距相关属性

    • 大小、定位、轮廓相关属性

    • 盒模型与布局相关属性

    • 表格、列表相关属性及 media query

    • 变形与动画相关属性

    • JavaScript 语法详解

    • DOM 编程详解

    • 事件处理机制

    • 本地存储与离线应用

    • 文件支持与二进制数据

    • Web Worker 多线程 API

    • 客户端通信

    • HTML5 疯狂俄罗斯方块

元素可以省略结束标签

vuePress-theme-reco 史博辉    2024

元素可以省略结束标签

史博辉 2022-10-17 00:07:00 html

HTML5 显得十分宽容,它允许部分 HTML 元素省略结束标签,甚至允许 HTML 元素同时省略开始标签和结束标签。具体来说,HTML5 中的省略标签可分为如下3种情况。

1.空元素语法的元素

空元素语法的元素有 area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、wbr。

这些空元素标签不允许将开始标签和结束标签分开定义。例如,<img.../>元素不允许写成如下形式:

<img src="a.gif" alt="a"></img>

<img.../>元素应该是空元素,因此它可以写成如下形式:

<img src="a.gif" alt="a"/>

与此同时,HTML5 并不要求遵守 XML 规范,因此<img...>元素写成如下形式也是正确的:

<img src="a.gif" alt="a">

2.可以省略结束标签的元素

可以省略结束标签的元素有 colgroup、dt、dd、li、optgroup、option、p、rt、rp、thead、tbody、tfoot、tr、td、th。

这种语法纯属向以前那些不规范的 HTML 页面妥协,例如如下写法:

<p>
    疯狂 Java 讲义
</p>

上面代码中<p...>元素只有开始标签,没有结束标签。这在以前是不符合规范的,但在 HTML5 中就是符合规范的。

3.可以省略全部标签的元素

可以省略全部标签的元素有 html、head、body、colgroup、tbody。

例如,给出如下的 HTML 页面。

<!DOCTYPE html>
<title>test</title>
<p>
    <ol>
        <li>aaaa
        <li>bbbb
        <li>ccccc
        <img src="a.gif" alt="a"/>
	</ol>
</p>

上面页面中完全没有<html...>、<head...>和<body...>这三个元素,且<p.../>、<li.../>元素都只有开始标签,没有结束标签,但这个页面是符合 HTML5 规范的。